package com.lzh.chatnote.common.config.knife4jConfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

//指定测试环境的时候启用配置文件
@Configuration
@Profile("test")
@EnableSwagger2WebMvc
public class Knife4jConfig {
    /**
     * 构建 API 信息
     * @return Docket
     */
    @Bean("webApi")
    public Docket createApiDoc() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                // 分组名称
                .groupName("Web 前台接口")
                .select()
                // 这里指定 Controller 扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.lzh.chatnote"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInfo() {
        return new ApiInfoBuilder()
                .title("举个栗子后台接口文档") // 标题
                .description("举个栗子是知识分享，视频播放的，群聊天，音乐播放项目。") // 描述
                .termsOfServiceUrl("https://www.quanxiaoha.com/") // API 服务条款
                .contact(new Contact("刘振华", "https://www.study.com", "2014372096@qq.com")) // 联系人
                .version("1.0") // 版本号
                .build();
    }
}
